package com.cy.dda.service.diligencing;

import com.cy.dda.model.Result;
import com.cy.dda.model.ao.diligencing.DiligencingReportSaveAO;
import com.cy.dda.model.domain.diligencing.DiligencingAttachmentType;
import com.cy.dda.model.vo.diligencing.DiligencingReportAttachmentVO;
import com.cy.dda.model.vo.diligencing.DiligencingReportDetailVO;

import java.util.List;
import java.util.Map;

/**
 * @Description 尽调报告 service
 * @Author tanyilin
 * @Date 2019/6/3 15:39
 */
public interface DiligencingReportService {

    /**
     * 前台-查询尽调报告详情信息
     * @param diligencingId
     * @return com.cy.dda.model.vo.diligencing.DiligencingReportAdminDetailVO
     */
    DiligencingReportDetailVO getDiligencingReportDetail(Long diligencingId);

    /**
     * 前台-保存尽调报告
     * @param saveAO
     * @param userId
     * @return void
     */
    Result<Map<String, Object>> saveDiligencingReport(DiligencingReportSaveAO saveAO, Long userId);

    /**
     * 提交尽调报告
     * @param saveAO
     * @param userId
     * @return void
     */
    void submitDiligencingReport(DiligencingReportSaveAO saveAO, Long userId);

    /**
     * 保存新增的照片类型
     * @param diligencingAttachmentType
     * @return com.cy.dda.model.domain.diligencing.DiligencingAttachmentType
     */
    DiligencingAttachmentType doSaveAttachmentType(DiligencingAttachmentType diligencingAttachmentType);

    /**
     * 根据 报告ID、照片类型type，查询相应的照片列表
     * @param diligencingReportId
     * @param type
     * @return java.util.List<com.cy.dda.model.vo.diligencing.DiligencingReportAttachmentVO>
     */
    List<DiligencingReportAttachmentVO> getDiligencingReportAttachment(Long diligencingReportId, String type);

    /**
     * 查询该尽调案件报告所新增的照片类型
     * @param diligencingId
     * @return java.util.List<com.cy.dda.model.domain.diligencing.DiligencingAttachmentType>
     */
    List<DiligencingAttachmentType> getDiligencingAttachmentType(Long diligencingId);
}
